Skip to content

Kafka 的重试机制

生产端的重试

生产者在向Kafka发送消息时,可能会因为网络问题、Broker不可用、队列满等原因导致发送失败。Kafka生产者内置了重试机制,用于确保消息尽最大努力被成功发送到Kafka集群。

消费端的重试

在 Kafka 中,消费者从 broker 拉取消息并处理时,可能会因为处理逻辑失败而无法成功消费消息。Kafka的消费者端重试机制并不是自动化内置的,而是需要开发者在消费者应用中进行额外的设计。

手动 ACK + 阻塞式重试

使用的方式是: Kafka 原生重试(DefaultErrorHandler)

在我们的项目中(一般指 SpringBoot 项目),我们会配置一下是否自动提交

Kafka 重试-原生重试机制

组件重试

项目组引入的一个组件,设计思想可以学习掌握一下

image.png

Broker端

Kafka在内部实现了多个自动的重试机制,用于保障分布式集群的可靠性和数据一致性。